package com.common.utils;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;

import java.util.List;

public class PageUtils {

    /**
     * 将PageInfo转换为MyBatis Plus的IPage
     * @param pageInfo PageHelper的PageInfo对象
     * @param <T> 数据类型
     * @return MyBatis Plus的IPage对象
     */
    public static <T> IPage<T> convertToIPage(PageInfo<T> pageInfo) {
        IPage<T> page = new Page<>();
        page.setRecords(pageInfo.getList());
        page.setTotal(pageInfo.getTotal());
        page.setCurrent(pageInfo.getPageNum());
        page.setSize(pageInfo.getPageSize());
        return page;
    }

    /**
     * 将PageInfo转换为MyBatis Plus的IPage(带自定义数据)
     * @param pageInfo PageHelper的PageInfo对象
     * @param records 自定义数据列表
     * @param <T> 数据类型
     * @return MyBatis Plus的IPage对象
     */
    public static <T> IPage<T> convertToIPage(PageInfo<?> pageInfo, List<T> records) {
        IPage<T> page = new Page<>();
        page.setRecords(records);
        page.setTotal(pageInfo.getTotal());
        page.setCurrent(pageInfo.getPageNum());
        page.setSize(pageInfo.getPageSize());
        return page;
    }
}
